home *** CD-ROM | disk | FTP | other *** search
Text File | 2004-01-11 | 81.0 KB | 1,553 lines |
- Changes since ViRC 2.0 RC5:
- --- Additions ---
- * You can now select all text in the input box with Ctrl+A.
- * The script editor's event properties page now has a button
- to select from some common event masks. Click it to see a
- popup menu of the different event templates, then fill in
- the blanks to create a mask for your event. The templates
- are read from the file "eventmasks.ini" in your script path.
- * You can ignore or unignore users from the nick list popup.
- * New alias: /squery <service> <message>
- * New function: $IsIgnoringNick(nick)
- * The tab bar has been moved to a binary plugin, vp_tabbar.bpl.
- This will allow the tab bar to be replaced in the future, but
- some of the tab bar configuration settings have been disabled
- in this version. The tab bar configuration will be working
- again soon, in a different form. Please be patient.
- * A mouse gestures plugin (beta) is now included,
- vp_gestures.bpl. If you chose to install it but now want to
- uninstall it, either delete the file or move it to another
- folder.
- --- Changed features ---
- * <OnDCCFinished> events now receive an error number of -1 and
- a message of "Cancelled remotely" when the remote end closes
- any DCC chat, or when the remote end closes a DCC file
- transfer that hasn't yet completed.
- * New events that you create in the script editor now start
- out as "after" events.
- * /wall only sends to 9 nicks at once.
- * VSInterp OLE Automation updates:
- - External apps can now pass interface pointers to OVS
- dispatch objects. The interface will be assigned an object
- handle for the duration of the method call, then unmapped.
- - The GetInterface() function now returns the actual IDispatch
- interface for mapped OLE interfaces, instead of an OVS
- wrapper.
- - OVS objects can now be passed to OLE Automation methods.
- A wrapper will be created automatically, just as with
- GetInterface().
- * The active nicks popup and hyperlink popups are now
- initialized in an OnStart event instead of in virc.lib's
- footer. This means you can merge items into the nick list
- popup from an add-on script, and they will appear when you
- right-click an active nick in the output pane (after
- restarting ViRC).
- --- Bug fixes ---
- * Fixed a wildcard bug where "v% *" wouldn't match "v foo".
- (The bug occurred when % matched an empty string and was
- followed by a space in the pattern.)
- * The hyperlink popup appears for URLs in the status window.
- * URLs surrounded by certain attribute codes are parsed
- correctly.
- * Popup menu items for active nicks (and active servers, etc.)
- now work correctly in the status window. Note that channel-
- specific items like Op and Kick won't work as expected since
- there's no channel, even though they aren't grayed out.
- * The ident server now returns the ports in the correct order.
- * SetEventLine now updates $nick, $user, and $host for the
- following events.
- * -before and -after events run in the correct order (highest
- to lowest priority).
- * $var++ and $var-- correctly update the variable on all
- servers.
- * Wallpaper and window backgrounds are reloaded when you click
- OK in the configuration window.
- * VSInterp: Fixed an obscure issue involving script access to
- methods and properties of COM objects (FuncDesc was released
- twice).
- * DCC Resume works when the sender is using mIRC 6.1+.
- * Fixed a scrolling bug for output windows with less than a
- whole page to show.
- * Fixed a server list saving bug.
-
- Changes since ViRC 2.0 RC4:
- --- Additions ---
- * Toolbar items can now have hotkeys. Put a clause like
- "hotkey Ctrl+X" after the item name in the toolbar block.
- * The timestamp and logging toggle buttons are now bound to
- F5 and F6, respectively.
- * Channels and query windows are now "deferred" until you stop
- typing for a second. They won't appear or receive focus until
- you stop; but they can still be accessed by scripts, and they
- show up on the window tab bar. This feature can be controlled
- with two new options on the initial setup page: "Don't pop up
- windows while I'm typing" and "Wait at least ____ ms after a
- keypress".
-
- The Query command will allow the new window to be deferred
- if you specify the -defer flag: /query -defer Mr2001
- Otherwise, it will be shown immediately as before. TextOut and
- TextOutBitmap always allow query windows to be deferred if they
- have to be created to show the text.
- * New option: "Horizontal window tabs when docked to side". This
- prevents the buttons from rotating when the tab bar is docked
- to the left or right.
- * If "Alt+Number to switch windows" is enabled, the tab icons now
- change to numbers when the Alt key is held down.
- * Added support for Undernet's 338 numeric, which gives the real
- user@host and IP address for users with the +x mode.
- * New "Goto URL in new window" option on the hyperlink popup
- menu. This uses Exec to start IE.
- * New attribute code for fixed-width fonts: ASCII 17, Ctrl+F in
- the command line, or \f in scripts. This is compatible with
- Pirch's fixed width code. ViRC.lib now displays the server MOTD
- in fixed-width so ASCII art will look right.
- * New function: $IsHidden(<window>)
- * New command: Activate <window>
- * New named events:
- <OnHiliteWindow*
- fired whenever new text causes an inactive window's tab to
- be highlighted. $0 is the window class (TServerForm,
- TChannelForm, TQueryForm, or TDCCChatForm) and $1 is the
- window's unique name.
- <OnDestroyWindow*
- the opposite of OnCreateWindow, fired just before a window
- is destroyed. the parameters are the same as
- OnCreateWindow: $0 is the class, $1 is the (possibly non-
- unique) name, and $2 is the unique name for DCC chats.
- --- Changed features ---
- * ViRC.lib's 330 numeric event now takes the account name from $4
- instead of $7.
- * The Directory, Drive, and FileName properties are now available
- (where appropriate) for TDirectoryListBox, TFileListBox, and
- TDriveComboBox.
- * Many new icons, thanks to Axel from Italy!
- --- Bug fixes ---
- * The "ban nick change" message is evaluated correctly.
- * The keepalive timer in virc.lib no longer resets $idletime().
- * The FlashWindowEx system call is now imported from user32.dll at
- runtime, allowing ViRC to run on Win95 systems (where
- FlashWindowEx doesn't exist).
- * Nick list flags other than o/h/v are now applied correctly in
- all cases.
- * Old alias hotkeys are correctly unbound when rehashing.
- * NLSetCustomOne parses the channel correctly, and works when
- called from a non-channel window.
- * The nick list selection no longer changes when the nick list
- contents change.
- * Fixed the hints for the "Show/hide status window" menu items.
- * Fixed a DCC bug when the nick in a DCC ACCEPT or RESUME message
- didn't exactly match your own nick. This bug caused problems when
- resuming files sent by some XDCC bots.
- * The character set of the main font and nick list font are now
- saved correctly. Font description strings (such as returned by
- $GetSetting()) now include "C#123" as the last parameter, where
- 123 is the Windows character set number, if the character set
- has been changed from the default.
- * Fixed an error appearing when using /rehash if the local script
- has been unset.
- * Table columns that have grown to fit wide text (e.g. long nicknames)
- will now shrink to their previous size when the wide text has
- scrolled off the end of the buffer.
- * The output from /unignore is fixed.
- * The window name is now correct in OnCreateWindow for DCC
- whiteboards.
- --- Translation changes ---
- * Message library version 3.
- * Added messages:
- - Msg_Rpl_WhoisRealHost, for the 338 numeric event.
- - Msg_Active_GotoLinkCaption, Msg_Active_CopyLinkCaption,
- Msg_Active_LinkNewCaption, and Msg_Active_LinkNewHint, for the
- hyperlink popup menu
-
- Changes since ViRC 2.0rc3:
- --- Additions ---
- * ViRC.lib recognizes the 330 numeric, returned by /whois on some
- networks if the user is logged into the network services.
- * Tab completion now works in server, query, and DCC chat windows.
- You can cycle backwards through the completions by pressing
- Shift+Tab. You can also use completion for command and alias names
- preceded by a slash: /ct<tab> changes to /CTCP. In channel
- windows, nicknames will be highlighted as they're completed.
- * New OVS classes: TDriveComboBox, TDirectoryListBox, TFileListBox,
- TFilterComboBox.
- * New extended With..EndWith syntax. First install a handler:
- ExtendWith <handler_name> [<flagset>] = <command>
- Then invoke it:
- With > <handler_name> [<parameters>]
- <block>
- EndWith
- The <command> will be called with <parameters>, and the content of
- <block> will be available through a TStringList object, $__Block__.
- <flagset> is a set (surrounded by square brackets) of these
- possible values:
- xwEvalParams - evaluate <parameters>
- xwEvalBlock - evaluate each line of $__Block__ before invoking
- the command
- xwNewContext - run <command> in its own local variable namespace
- instead of the same one where With..EndWith was used
- If <flagset> is omitted, the default value is [xwEvalParams].
- * OVS objects can be accessed through OLE Automation by using the
- IVSSprout::GetInterface method (see vircole.txt). This allows other
- applications and Language..EndLanguage blocks to control objects
- created by scripts. For example:
- Language VBScript
- Set mainform = VisualIRC.GlobalInterpreter.GetInterface(0)
- mainform.Caption = "This is a new main form caption"
- EndLanguage
- Please note: When one of your objects' methods is called through
- OLE, the parameters will be quoted as list items. See vircole.txt
- for more tips on writing classes that can be called through OLE.
- * OLE Automation interfaces can be mapped as OVS objects. See
- vircole.txt for full details. Quick notes:
- - OLE interfaces can be mapped one of two ways. (1) Another
- program, or your script in a Language block, can call
- IVSSprout::MapInterface. (2) You can create a new COM object
- with the $NewComObject() function, given its CLSID, as long as
- the object supports IDispatch.
- - The handle 1 is automatically mapped to an instance of
- IVisualIRC, the same interface available to Language blocks as
- "VisualIRC".
- - If $obj is an OLE interface, $ClassOf($obj) returns "IDispatch"
- and $ParentClassOf($obj) returns "IUnknown".
- - Indexed properties can be used by surrounding the index(es) with
- square brackets after the property name: $prop(1.Servers [4])
- - All parameters to an OLE method, including parameters for an
- indexed property, must be individually quoted as list items.
- * You can now send DDE commands to ViRC by poking data as well as by
- executing a macro (for compatibility with programs written for
- other IRC clients). Use the topic 'command' and the item name
- 'IRC_Command'. See vircdde.txt for details.
- * Increased $ovsversion to 9 because of the new OLE support.
- * New 'Parse List' statement, just like 'Parse Extended' but it
- cleans up the list first and strips quotes from the single items
- ($1 is the second item without quotes, $1- is the second item
- and all following items including quotes). Example:
- @l $list = "albert bill" charlie "dave evan"
- Parse List $list
- // displays: albert bill
- MessageBox $0
-
- // displays: charlie "dave evan"
- MessageBox $1-
- EndParse
- * ViRC will create a temporary server entry when you connect to
- a server that sends its capabilities in the 005 numeric. The
- temporary entry will not be saved to disk by default. If you
- want to keep it, you can open the server manager and move it
- to a network.
- * The OnCloseQuery event of forms can be used to prevent the form
- from closing. Use '@L $CanClose = 0' in the event handler if
- the form shouldn't be closed.
- * TTrayIcon (e.g. $MapObject(!Main:TrayIcon)) has two more
- properties: Flashing (Boolean) and FlashTime (Integer). When
- Flashing is True, the tray icon will flash every FlashTime ms.
- * New function: $IsAppActive() returns 1 if ViRC is the active
- program.
- * New command: FlashTaskbar [mode]. Mode can be "on" (or 1) to
- highlight ViRC's taskbar button, "off" (or 0) to un-highlight
- it, or "auto" to highlight it until ViRC becomes the active
- program. ("off" may not work correctly due to Windows API bugs.)
- * New ViRC.lib script settings to flash the taskbar and/or tray
- icon when new messages arrive and ViRC is in the background.
- * The "text windows" configuration page now contains a nick list
- color/style editor.
- * The nick list can now display your channel background image.
- * ViRC.lib automatically sets up the smileys.vsc and sounds.vsc
- add-ons for first-time users, as well as winamp.vsc if Winamp
- is running when ViRC is started.
- * TTreeView is now accessible from OVS (as well as TTreeNodes
- and TTreeNode). Most properties and events are supported.
- --- Changed features ---
- * Nicklist flag colors are now saved in color scheme files.
- * English messages from ViRC.lib and toolbars.vsc have been moved
- into english.lib to facilitate translation. You can use
- english.lib as a base for translating ViRC.lib's messages into
- other languages.
- * Relative path names can be used in embedded TextOut bitmaps
- (\S@bmp:smile.bmp:alt text\S) and script link bitmaps
- (\S@slbmp:smile.bmp:command:alt text\S).
- * The channel list window is no longer modal. You can select
- another window while the list is open, then switch back by
- clicking the channel list's window tab.
- * The error message displayed when you try to change your nick
- while banned/gagged on a channel now shows the channel name.
- * Some configuration pages have been re-arranged.
- * Color names are now more friendly on the "text windows"
- configuration.
- * ViRC.lib now fires <OnCreateStatusWindow* events after creating
- the status window, to allow other scripts to change the
- appearance of the status window and its popup. $0 is the object
- handle of the window itself (TMonkeyScroller) and $1 is the
- popup menu (TPopupMenu).
- * The script editor appears much more quickly when using the
- '-editscript filename.vsc' command line option.
- * The top-level code in a script (header/footer) can examine $2
- to find out whether this is the user's first time running ViRC.
- $2 will contain "firstrun" if so.
- * As a precaution, the built-in script editor no longer allows
- you to save the file if any code was lost during loading.
- The warning message explains that you must edit the file with
- a text editor.
- --- Bug fixes ---
- * Fixed the channel control's topic length indicator not updating.
- * Updated to ThemeManager 1.9. Among other things, this fixes
- sab0tage's channel control script causing errors when you close
- ViRC after opening the channel control form.
- * Text should now wrap correctly on multi-byte character systems.
- * $ListSearchReplace() works correctly with items that contain
- spaces.
- * Menu item bitmaps appear correctly for toolbar dropdown menus,
- the /wwho right-click menu, and menus creates with
- TMenu.LoadFromMenuTree.
- * $IdleTime() is no longer reset by server pings.
- * The toolbar selection popup no longer appears when right-clicking
- the drawing in a whiteboard window.
- * Continuous backgrounds line up with the wallpaper when toolbars
- are docked to the left side.
- * TDCC transfers are correctly recognized as TDCC when the filename
- includes a space.
- * $URLEncode() and $URLDecode() now translate a space to %20 instead
- of '+'.
- * The "don't tell me about this version again" check box setting in
- the update checker is saved correctly.
- * The font change dialog boxes no longer show checkboxes for strike
- out, underline, or color. The main font dialog box no longer lets
- you change the font style to bold or italic (since channel text
- always appear with regular style anyway).
- * Script links now work in the status window.
- --- Translation changes ---
- * Message library version 2.
- * Msg_BanNickChange can now use $$chanstr for the name of the
- channel that prevents a nick change.
- * Added messages: Msg_SS_flashtray and Msg_SS_flashtaskbar, the
- captions of the script settings to flash the tray/taskbar when
- a new message is received while ViRC is inactive.
-
- Changes since ViRC 2.0rc2:
- --- Additions ---
- * /chatops and /globops aliases in virc.lib, for IRCops on DALnet
- based servers.
- * New command: Randomize - Re-seeds the $rand() function.
- * You can now add more than one add-on script at a time.
- * New function: $NickCase(text) - Returns text in uppercase, with
- [\] changed to {|}. This is good for storing nicknames in an array.
- * New functions: $SelectedNick(channel) and $SelectedNickList(channel).
- * The toolbar popup menu now appears when you right-click ViRC's
- background.
- * New 'lock toolbars' on toolbar popup menus.
- * The position of the nick list resizer is stored for channel windows.
- * Stored window positions will be deleted after you haven't joined
- the channel for two weeks. Imported window positions from rc2 will
- be deleted after one week (unless you rejoin them before then).
- * New commands: Delay [timername] interval command, MDelay [timername]
- interval command, UnDelay timername. Equivalent to Timer, MTimer,
- and UnTimer, except that the number of repeats is always 1.
- * New colorful nicklist. Commands and functions: NLAddFlag, NLDelFlag,
- NLPrec, NLNamesMark, NLColor, NLStyle, NLPrefix, NLSuffix, NLBitmap,
- NLFlags/$NLFlags(), $NLFlagInfo(), $NLHasFlag(), NLChFlags,
- $NLGetFlags(), NLSetCustomOne, NLSetCustomAll, $NLGetCustomOne(),
- $NLGetCustomAll(), NLDelCustomOne, NLDelCustomAll, NLConfig,
- $NLConfig().
- * Nick list configuration options: "Enhanced nick list" and
- "Show all prefixes".
- * ViRC.lib will automatically add any new nick list flags when you
- connect to servers that send a "PREFIX" option.
- * New mappable forms: !ChannelList, !EditChatFile, !EventOptions,
- !AutoUpdate, !ImportSettings, !KPalette, !MenuTreeOptions,
- !PenWidth, !DCCResume, !XportServers, !SetupWizard, !Splash,
- !Uninstall, !WWho
- * $GetDCCInfo() can accept a DCC chat or whiteboard window name
- instead of a DCC entry id: $GetDCCInfo(=Mr2001 remoteaddr)
- * New OVS class: $new(TMessageDialog <message> <type> <buttons>)
- type - mtWarning, mtError, mtInformation, mtConfirmation,
- mtCustom
- buttons - set of [mbYes,mbNo,mbOK,mbCancel,mbAbort,mbRetry,
- mbIgnore,mbAll,mbNoToAll,mbYesToAll,mbHelp] (no spaces!)
- To create a message dialog and show it later, use code like this:
- @ $sure_dialog = $new(TMessageDialog Are you sure? mtConfirmation [mbYes,mbNo])
- ...
- @l $result = $sure_dialog.ShowModal()
- The return value of ShowModal() is the same as the return value
- from $MessageDlg(). You can set the dialog's ModalResult property
- to a nonzero value to close the dialog without user input
- (e.g. from a timer).
- --- Changed features ---
- * You can select more than one file in the DCC send dialog box.
- * $nicklist(), $oplist(), $peonlist(), etc. now quote the nicks as
- list items, so nicks with \\ in them will work correctly. (They were
- previously separated by spaces but not quoted. You can use
- $ListJoin() to change them back.)
- * $StrTrim() now removes leading spaces before the colon.
- * Closing the channel list before it's finished searching will
- send a 'LIST STOP' to the server (when server-side searching is
- enabled).
- * The number of repeats is now optional for /timer and /mtimer. If you
- leave it out, it defaults to 0 (infinite repeats).
- * Added COM, PIF, DOC, XLS, and SHS to the default "dangerous file
- extensions" list.
- * $listquote() now prefers to use angle brackets instead of quotes.
- * DCC chat popups now receive the unique DCC window name as $C and $2.
- --- Bug fixes ---
- * smileys.vsc won't replace smileys that occur inside a word, like
- "Fserve trigger:(!foo) Queue:(3 of 3)"
- * Leaving the server selection box empty when you have no default
- server won't cause problems.
- * Alt+Number switching should work correctly with non-US keyboards.
- ViRC now checks whether you are holding down Ctrl at the same time,
- since AltGr is supposed to send left Ctrl + right Alt. On a US
- keyboard, you should be able to use either Alt key to switch windows.
- * AbortEvents won't display the raw server line.
- * The master script browse button in configuration works relative to
- the script path.
- * Fixed an array bug - @ $x = y, where $x has previously been used as
- an array, should work correctly.
- * Min and Restore work as expected when 'minimize to tray' is enabled.
- * A space is only copied to the clipboard for table columns when it's
- after the beginning of the line.
- * Duplicate nicks are no longer added to the notify list.
- * After double clicking the tab bar to hide a window, the next highest
- window will be activated.
- * Fixed an EConvertError during auto-reconnection.
- * Fixed an error when loading files into the script editor.
- * Fixed "view log" popup menu item.
- * Fixed a couple stability issues from RC2.
- * Fixed IAL expiration.
- * Fixed $upeval().
- * Fixed changing events on objects that are mapped more than once.
- * Fixed errors when opening the script editor when the script path is
- not the current directory.
- * The Undo/Copy/Paste popup menu is back for input panes.
- * Most forms are now loaded as they are needed, reducing initial
- memory usage and decreasing startup time.
- * Built-in forms that haven't been loaded will be loaded when they
- are mapped with $MapObject(), instead of returning -1.
- * The 'GetMenuTreeList' method of TStrings lists user-defined
- menu trees.
- ? Fixed script editor not saving to correct file if directory has been
- changed.
- * Channel control window: Halfops can change topic. Peons can read and
- copy the topic even if they can't change it.
-
- Changes since ViRC 2.0rc1:
- --- Additions ---
- * Event options to run before/after other events, use variables in
- the activation mask, and more. New event definition syntax:
- Event <name> [-before|-after] [-eval] [-exact] [-case] [-regexp] "<mask>"
- <code>
- EndEvent
- -before: the event will run before the event's message is displayed
- (either internally or by a priority-matching event). all matching
- 'before' events will be run in the opposite order they were added
- (that is, newest first), unless one of them calls FallThrough,
- which will skip all remaining 'before' events.
- -after: just like -before, but runs after the message. the order is
- still newest first. this shouldn't be combined with -before.
- -eval: the mask will be evaluated when it is being matched against
- a server line (caution: if you put a function call in the event
- mask, the function will be called A LOT). use this to match your
- current nick, for example, instead of the nick you had when the
- event was defined.
- -exact: the mask will have to match the entire server line. that is,
- "% JOIN" will not match ":Mr2001 JOIN #virc" if -exact is used.
- also, the event mask won't be evaluated when the event is set,
- although it will still be evaluated at match time if -eval is used.
- -case: the mask will be case-sensitive.
- -regexp: the mask is a unix-style "regular expression" rather than
- a $wildmatch() mask. any subexpressions enclosed in parentheses
- will be available to the event handler in the $matches array:
- the mask ":\w+ PRIVMSG (#\w+) :(.*)" will put the channel name in
- $matches[1] and the message in $matches[2]. the mask will not be
- evaluated when it is set, since some regexp syntax collides with
- ViRC's attribute codes.
- * New commands: 'SetEventLine <text>' and 'AbortEvents'. SetEventLine
- lets an earlier event change the parameters that will be given to
- later events. AbortEvents stops event processing after the current
- event finishes. For example, to ignore all /msgs from Mr2001, and
- change everything LuceNT says to uppercase:
- Event PRIVMSG_test -before "% PRIVMSG"
- if [$nick] == [Mr2001]
- AbortEvents
- else if [$nick] == [LuceNT]
- SetEventLine $0 $1 $2 :$upper($strtrim($3-))
- endif
- EndEvent
- * New function: $upeval(<text>) evaluates the text in the previous
- local variable context, so a called alias can access its caller's
- local variables. (This is used by @e+ and @e-.) For example:
- Alias FOO
- @l $secretnumber = 17
- Bar
- EndAlias
- Alias BAR
- MessageBox The secret number is $upeval($$secretnumber).
- EndAlias
- * New OVS event utilities (in virc.lib):
- // add an event handler to an object. any existing handlers will
- // still run, but this will replace an existing handler with the
- // same ID (first_box).
- @e+ $button.OnClick = first_box, MessageBox You clicked the button!
-
- // add another, now both boxes will appear when you click it
- @e+ $button.OnClick = second_box, MessageBox You clicked at $time()
-
- // remove the first handler
- @e- $button.OnClick = first_box
-
- // list all handlers
- foreach ($id,$code; $eventhandlers($button.OnClick))
- MessageBox handler "$id" runs "$code"
- endforeach
- * The server list can now be mapped as !ServerList.
- * CTCP SOUND support is now included as an add-on script, sounds.vsc.
- * '@ ${foo} = bar', '-@ ${foo}', etc. are supported.
- * https:// and irc:// URLs are highlighted.
- * New function: $replace(<text> <from1> <to1> [<from2> <to2>...])
- returns the text after replacing each "from" string with the
- corresponding "to" string. All parameters must be quoted as list
- items, and they are case sensitive. The replacement is done on a
- single pass through <text>, so $replace(ABC A X X Z) will return
- "XBC", not "ZBC". $replace(ABCD A foo ABC bar) will return "fooBCD",
- not "barD", because the leftmost from/to pairs are replaced first.
- * Inline graphics for text windows: \S@bmp:filename[:alt text]\S
-
- If supplied, the alt text will be copied to the clipboard when the
- graphic is selected. You can also make a graphical script link:
- \S@slbmp:command:filename[:alt text]\S
-
- <filename> can be either a FULL PATH to the bmp file, or a bitmap
- handle returned by $bitmap(filename.bmp). ViRC will automatically
- look in your image path if you use $bitmap(filename.bmp).
- * Tables for text windows. These are basically like custom tab stops;
- there are separate commands to create a table definition, select
- an active table, and move to the next column within a line of text.
- All the commands are used by outputting them to a text control, so
- tables should be defined in <OnCreateWindow>, not <OnStart>.
-
- define (or redefine) a table: \S@td:<name>:<col1>[:<col2>:...]\S
- - Name must be a single word. A table only has to be defined
- once, then it can be used in any window. Each <colN> sets
- the width of a column; it can specify pixels ('50px'),
- characters ('25ch'), or let ViRC choose a size ('?'). The
- /f flag ('50px/f', '25ch/f') tells ViRC not to resize the
- column, even if some text won't fit.
-
- (re)define a wrappable table: \S@td/w:<name>:<col1>[:<col2>:...]\S
- - Just like regular @td, but text shown with a wrappable table
- is allowed to wrap to the next line.
-
- select a table for one line: \S@uset:<name>\S
- - This must appear at the beginning of the line. The named
- table definition will be used for this line only.
-
- select a table for several lines: \S@pusht:<name>\S
- - The named table will be added to the top of the "table stack",
- and it will be active until it is removed with @popt. Each
- window has its own table stack.
-
- display text with columns: \S@col\S<some text>
- - Moves to the next table column before displaying the text.
- The previous column may be resized if it wasn't defined with
- /f and if the text that has already been displayed is wider
- than the column's original size.
-
- unselect a table: \S@popt\S
- - Removes the most recently selected table from the stack.
-
- unselect all tables: \S@popt/a\S
- - Clears the table stack. When the stack is empty, the default
- table (set with @setdeft) will be used.
-
- set a default table: \S@setdeft:<name>\S
- - Sets the named table as the default table, so it will be
- active whenever the table stack is empty. ViRC.lib uses a
- default table to line up nicks, so you should only change
- the default table if you know exactly what you're doing.
-
- * New function: $GetTimerServer(<timer name>) returns the ID of the
- server that the timer is associated with, or -1 if not found.
- * The script editor has buttons for event options and menu tree
- merge options. If your script uses MergeMenu and you want the script
- editor to recognize it, rename the source tree to the destination
- tree's name followed by __MERGE (e.g., MT_MAINMENU__MERGE), then
- move the MergeMenu line immediately after the last MenuItem for
- the tree.
- * ViRC will be drawn with themes under Windows XP.
- * New included scripts: sounds.vsc (handles CTCP SOUND) and
- smileys.vsc (shows graphical smileys).
- * ViRC.exe now includes 48x48 icons.
- * New exception handling for scripts. Now you can catch errors that
- come up when working with files or OVS:
-
- Try
- @l $filename = $?="Enter a filename"
- $stringlist.LoadFromFile $filename
- Except
- if [$ExceptClass] == [EInOutError]
- MessageBox I/O error prevented me from loading the file: $ExceptMsg
- else
- MessageBox Unexpected exception: $ExceptClass was raised at $ExceptAddr ($ExceptMsg)
- endif
- EndTry
-
- Use a 'finally' part to run some code whether an exception was
- raised or not. You can omit the 'finally' or 'except' part, or both
- (to ignore all exceptions).
-
- @l $cur_dir = $GetCurrentDir()
- Try
- ChDir $getpath()
- MkDir $?="Enter a new directory name"
- Finally
- ChDir $cur_dir
- Except
- MessageBox Couldn't make new directory: $ExceptMsg
- EndTry
-
- In an 'except' part, you can reraise the exception, so it
- will be caught by an outer Try..EndTry statement, with the Raise
- statement. Or you can raise your own exceptions at any time:
-
- Alias OUTER
- // ignore any exception that occurs in Inner1
- Try
- Inner1
- EndTry
- EndAlias
-
- Alias INNER1
- Try
- Inner2
- Except
- // display "Inner1 caught Exception - an exception from Inner2"
- MessageBox Inner1 caught $ExceptClass - $ExceptMsg
- // re-raise the exception for Outer to catch
- Raise
- EndTry
- EndAlias
-
- Alias INNER2
- Raise an exception from Inner2
- EndAlias
- * A scripted popup menu now appears when right-clicking a web hyperlink,
- allowing you to either go to the URL or copy it to the clipboard. This
- makes use of TMS's new OnHyperlinkPopup event.
- * New command: CacheBitmap <name> <hbitmap>. You can replace ViRC's
- built-in TextOut images by using a 'name' of _join.bmp, _part.bmp, etc.
- 'hbitmap' is the value returned by $bitmap(filename.bmp).
- * New event: <OnCacheBitmaps>, called at startup and after
- FlushBitmapCache. This is a good place to replace built-in bitmaps.
- * ViRC.lib will automatically replace the built-in join/quit/etc bitmaps
- with any corresponding files it finds in your image path:
- _join.bmp, _part.bmp, _joinign.bmp, _partign.bmp,
- _quit.bmp, _nick.bmp, _mode.bmp, _topic.bmp
- If you release a color scheme for 2.0rc2 with new bitmaps, you can
- simply include these files in an image folder, and reference it in your
- scheme file. ViRC.lib will notice when you change your image path and
- automatically recache the bitmaps.+
- * ViRC.lib notices when you change your script path or filenames in client
- setup, and automatically rehashes.
- --- Changed features ---
- * File dialog boxes ($opendialog(), etc.) now start in the current
- directory.
- * Built-in menu trees in the script editor are now merged by default.
- This means you can add items to a menu simply by, well, adding them.
- * The script editor shows a warning when you omit an event mask.
- * RightAlt+Num no longer switches windows, since right Alt is used for
- typing symbols on non-U.S. keyboards. Use left Alt instead.
- * The server list and server import/export forms are now resizable, and
- the tree views won't expand automatically if there are more than 15
- items to show.
- * Opening server windows is faster.
- * String expressions can now use nested square brackets:
- if [$array[$key]] == [foo]
- ...
- endif
-
- @l $x = []
- if [$x] == [[]]
- MessageBox Naturally!
- endif
- --- Bug fixes ---
- * Fixed an array parsing bug.
- * MergeMenu now copies hints correctly.
- * Making the server hostname edit box empty, or calling /server with no
- parameters, will now connect to the previous server instead of giving
- an error.
- * The userlist loads correctly from INI files.
- * $listquote() now escapes strings containing tabs and CR/LF.
- * The script editor doesn't prompt to save when you view a <DoubleClick>
- menu item without making any changes.
- * The script editor won't write a MenuTree block if the only item is
- <DoubleClick>.
- * $GetWindowID() works for all window types.
- * <OnDCCFinished> is fired when closing a DCC chat window.
- * '^Msg =nick text' correctly hides any text displayed by
- <OnMyQueryText>.
- * The DCC progress bad should appear correctly for large files.
- * !Application's Active property is now readable.
- * UltimateIRCD's "channel admin" flag (*nick) won't confuse ViRC's
- nick list.
-
- Changes since ViRC 2.0pre11:
- --- Additions ---
- * -@L command to delete local variables and local array entries. Local
- variables and arrays are still deleted automatically when the routine
- finishes, so this is mainly useful for removing values from local
- arrays.
- * You can now switch between the first ten windows by pressing Alt+1
- through Alt+0. Alt+1 jumps to the first window on the tab bar, Alt+2
- jumps to the second, etc.
- * New aliases in virc.lib: /onall <command> to run a command on all
- servers, /aasay <text> and /aame <text> to do /asay and /ame on all
- servers.
- * The script editor now supports custom magic in menus.
- * Color and font schemes can now be saved and loaded on the
- "Text windows" configuration tab. If you download schemes, save them
- in your image path.
- Schemes can also include image and sound folders. To distribute your
- images and sounds as part of a scheme, open the scheme file with a
- text editor. Add a section at the bottom:
-
- [Paths]
- ImagePath=somename-images
- SoundPath=somename-sounds
-
- (You don't have to include both an image path and a sound path.
- Replace 'somename' with the name of your scheme.)
-
- Then put the scheme file (somename.colors), along with image and
- sound folders (somename-images and somename-sounds), in a ZIP
- archive to upload it.
- * New $ParamList() function to return a list of parameters passed on
- ViRC.exe's command line.
- * Command-line support for loading scripts (-loadscript filename.vsc),
- editing scripts (-editscript filename.vsc), importing server lists
- (-importservers filename.vsl), opening connections from a file
- (-chat filename.chat), editing connection files (-editchat
- filename.chat), and deleting settings (-uninstall).
- * ViRC now has an installer to create icons and register file types.
- The /irchyperlink alias will be called when an irc:// URL is
- activated from Explorer.
- * You can now choose to save to an INI file from the setup wizard.
- * ViRC's TApplication object can now be mapped as !Application.
- Useful properties: Active (boolean), ExeName (string),
- Handle (HWND), HintColor (color), HintHidePause (integer),
- HintPause (integer), HintShortPause (integer), ShowHint (boolean),
- Title (string).
- * New "codeedit" script control type. A syntax-highlighting script
- code editor will appear. $getsetting() returns a list of lines
- in order.
- * New "perform on connect" script setting for networks and servers.
- * Inflated windows stay inflated when resizing the main ViRC window.
- Clicking the maximize button of an inflated window returns it to
- the size it had before it was inflated.
- * New default colors and built-in bitmaps.
- * Special cursors for hyperlinks and script links.
- --- Changed features ---
- * New-style arrays ($array[$key]) have been optimized and are now as
- fast as old-style arrays. Adding or removing values may cause the
- order of items in $array to change. Old-style arrays ($array.$key,
- or any variable with a . in the name) are now deprecated and should
- no longer be used in new code, since a future version will not
- support them.
- * The incorrect syntax '-@ $foo $bar' no longer deletes $foo.
- * Server list files (.vsl) can now contain comment lines starting
- with //.
- * The script log now shows function results.
- * The setup wizard has been improved.
- * Nonprintable characters and backslashes are no longer allowed in
- variable names.
- * Credits sequence changed.
- --- Bug fixes ---
- * Default paths are used correctly in the configuration window.
- * No more I/O error when closing a reverse DCC send that is waiting
- for a response from the receiver.
- * The script editor appears correctly on systems with large fonts.
- * Fixed virc.lib's DCC auto-accept settings.
- * Fixed winamp.vsc bug causing crashes with certain song titles.
- * Calling TextOut in some situations used to create a query window
- called "$C"; now it is redirected to the server window.
- * No more 64 KB limit in INI files.
- * Minor bug fixes in the text scroller.
- * Custom magic works on the main menu.
- * Unused menu entries are correctly deleted; this solves a bug with
- replacing menus containing custom magic.
- * Hyperlinks are now marked more reliably.
-
- Changes since ViRC 2.0pre10:
- --- Additions ---
- * User-defined classes can now use <AutoGet> and <AutoSet> as generic
- property handlers, which will be called if you try to read or write an
- undefined property.
- * New client setup page for default download, upload, sound, image,
- log, and script paths. Please note that the download, upload, and
- log paths default to your "My Documents" directory, not the ViRC
- directory.
- * Scripts now have a standard way to store and play sound files for
- events: AddEventSound <name> "<category>" "<title>" [default <file>],
- DelEventSound <name>, PlayEventSound <name>, $EventSoundList(),
- $GetEventSound(<name>), $GetEventSoundFile(<name>),
- SetEventSoundFile <name> <file>, $IsEventSoundSet(<name>). Items
- added with AddEventSound appear on the event sounds page in client
- setup. PlayEventSound can also be called as a function, returning 1
- if the sound was successfully played.
- * New command to play sound files: PlaySoundFile <file>. This can also
- be called as a function, returning 1 if the sound was successfully
- played.
- * InternalCall now works for many event types other than TNotifyEvent,
- so you can hook into ViRC's events such as OnClose and still use the
- default handling. Any parameter values for the event will be taken
- from variables (such as $Action for OnClose), and any output
- parameters will be written back to the variables.
- * New command to run an alias in the current local variable context:
- Chain <alias> [parameters]. All the local variables from the current
- routine will be passed to the alias, and any changes made by the
- alias will be visible to the current routine. This is useful for
- chaining OVS event handlers:
- @l $old_handler = $prop($obj.OnKeyDown)
- @p $obj.OnKeyDown = _NEW_KEYDOWN $old_handler
- ...
- Alias _NEW_KEYDOWN
- ...
- Chain $1-
- EndAlias
- * New function $ShiftKeys(), returning a set of control keys that
- are currently held down. Possible keys are lshift, rshift, lctrl,
- rctrl, lalt, ralt, lstart, rstart, and context. 'shift' will be
- included if either shift key is down; 'ctrl', 'alt', and 'start'
- work similarly.
- * ViRC.lib changes: Auto-connection will not be performed if you hold
- Ctrl down while starting ViRC. Auto-joining will not be performed
- if you hold Shift down while connecting to a server. New script
- settings "Auto-accept DCC chat", "Auto-accept DCC send",
- "Auto-resume DCC send", and "Dangerous file extensions". Logging menu
- items on server/channel/query/chat windows.
- * Buttons on the tab bar are now grouped by server and window type.
- * New methods for TStrings: SaveToToolbar <name> <options>,
- LoadFromToolbar <name>, SaveToToolbarItem <item> on <bar>,
- LoadFromToolbarItem <item> on <bar>. LoadFromToolbar can be called
- as a function ($stringlist.LoadFromToolbar(TB_WINAMP)) to return
- the options needed to recreate the toolbar.
- * winamp.vsc changes: Added commands /zz, /zj, /zk, /zl. Added Winamp
- toolbar. See winamp.vsc for documentation and options.
- * New function $ListUnique(<list>), returning the list with duplicate
- items removed.
- * Rewritten configuration code: New option "Save to INI file" in
- configuration window. The server list is now stored in a file. New
- commands: SetSetting [path] <key> = <value>, SaveConfig. SetSetting
- can operate on either config settings or script settings (like
- $GetSetting()), but any changes will be temporary unless SaveConfig
- is called afterwards to write the settings to the registry/INI file.
- * New command to add items to a menu tree:
- MergeMenu <source> {before|after} <destination> <options>. Options
- can be a space-separated list of 'addsep', 'noaddsep', 'clobber',
- 'noclobber', 'move', and 'nomove' (all three are turned on by
- default). Addsep controls whether a separator is added between the
- old items and the new items, clobber controls whether old items are
- replaced by new items with the same name, and move controls whether
- old items are rearranged to the order they appear in the source
- menu.
- * The script editor now prompts to save files that have been modified.
- * OLE Automation support - see vircole.txt for details.
- * ActiveScripting blocks now have access to the current window's
- Automation object ("Current", implementing IServer, IChannel,
- IQuery, IDCCChat, or IWhiteboard) as well as ViRC's object
- ("VisualIRC", implementing IVisualIRC).
- * New custom magic types for menu definitions, so items can be
- enabled or disabled at runtime. Instead of a number 0..3, you can
- also use '$varname' (so the item is enabled when the variable is
- nonzero) or '%funcname' (calls the function with <windowname> or
- <nicks> <windowname>, item is enabled when the result is nonzero).
- These forms can also be used with variable or function references:
- !$varname enabled when variable is false
- &$varname enabled when the menu's regular criteria is
- met (e.g., you are opped) AND the variable
- is true
- |$varname enabled when the menu's regular criteria is
- met OR the variable is true
- &!$varname enabled when the menu's regular criteria is
- met AND the variable is NOT true
- !&$varname enabled when the menu's regular criteria is
- NOT met AND the variable is true
- !|!$varname enabled when the menu's regular criteria is
- NOT met OR the variable is NOT true
- and so on.
- * New custom magic types for toolbar button definitions. Instead of a
- state number 0..3, use state number 5 and include 'magic <token>'
- before the state, where <token> is a variable or function reference
- as described above. For example:
- T_CHANCTL magic $enablechanctl 0 "tbchanctl.bmp" | Channel control
- * New command UpdateMainMenu, to apply magic to the main menu and
- toolbar items. (Magic will only be applied when the command is
- called.) UpdateMainToolbar is a synonym.
- * New function $isobject(<value>) to determine whether the value is a
- valid object handle. New function $proplist(<object>) to list
- properties.
- * You can now use the -nosplash command line parameter to disable the
- splash screen.
- * New events: <OnMinimizeToTray> and <OnRestoreFromTray>. ViRC.lib
- uses these to display a private message count while minimized.
- * The help menu now shows DOC files.
- --- Changed features ---
- * ViRC will not try to reconnect if you use /server to connect to a
- hostname that can't be resolved, but it will try to reconnect if it
- encounters an unresolvable hostname during reconnection.
- * The ident socket is only bound while ViRC is waiting for a server
- to connect to it (unless "Answer for other programs" is enabled).
- Ident should now work correctly with multiple instances of ViRC
- running.
- * $GetPath() now accepts an argument: 'download', 'upload', 'log',
- 'script', 'sound', 'image', or 'virc'. $GetPath() with no argument
- is the same as $GetPath(virc).
- * If a script file can't be found in the specified location, but it
- can be found in ViRC's directory, ViRC will show a message but
- won't automatically load the scripts from its directory unless you
- press OK in the configuration window that appears.
- * The default personal script filename for a user profile is now
- local-<profile>.lib. (Create new user profiles by making shortcuts
- to 'ViRC.exe -user <profilename>'.)
- * Magic modes 1 and 2 for MT_TRAYPOPUP items now cause the items to be
- enabled (or disabled, respectively) when ViRC is minimized.
- --- Bug fixes ---
- * $([foo] == [bar]) was slightly broken by the new array syntax.
- * Small bug with matching server entries fixed.
- * $GetMenuHint() and SetMenuHint are now case-insensitive.
- * Italic text is displayed properly with non-TrueType fonts.
- * Toolbars are repositioned correctly after reloading the script.
- * Fixed closing a server window while a $getaddress() or DNS lookup was
- pending.
- * Toolbar buttons with mode 1 (enabled when opped) are enabled when you
- join a channel and receive ops automatically.
- * Random/sequential reconnection option is stored correctly.
- * "Cancel reconnect" button appears in the correct place.
- * ViRC minimizes to the tray correctly when the context menu for the
- taskbar icon is used.
- * Setting a timer for a command that uses the built-in channel tracking
- (e.g., /timer 5 1 say hello) works correctly.
- * Redefining a toolbar to appear on fewer window types will correctly
- remove it from the old windows.
- * Aborting DCCs now closes the file reliably.
- * The notify list is emptied when disconnecting from the server.
-
- Changes since ViRC 2.0pre9:
- --- Additions ---
- * Visible controls now have the Parent property available. This could be
- used to move built-in controls into a group box or tab sheet.
- * TListBox, TComboBox, and TListView now have an ItemText property. For
- TListBox and TComboBox it's equivalent to the ItemIndex'th element of
- the Items list; for TListView it's equivalent to the Caption property
- of the Selected item.
- * Server tab buttons now show "connecting" while waiting to connect.
- * A gratuitous credits display is hidden in the about box.
- * DCC entries now stay in the list after an error occurs.
- * $GetDCCInfo() has two new fields: errnum and errmsg. 'state' can also
- return 'error'.
- * New '@e' command to set one-line event handlers. For example:
- @e $form.OnMouseDown = MessageBox $Button
- Now when you click the form, you will see a message saying "mbLeft" or
- "mbRight" depending on which button you used. Note that the $Button is
- evaluated when the event handler runs, not when it's set (as with @p).
- This is equivalent to:
- @p $form.OnMouseDown = Eval MessageBox $$Button
- ... but it makes more sense.
- * New <default> event for server lines that aren't handled by anything
- else. New "show unrecognized server numerics" script setting, to show
- the entire unrecognized line.
- * New associative array syntax:
- @ $foo[key1] = value1
- @ $foo[key2] = value2
- @ $foo[key3] = value3
- MessageBox $foo[key2]
- -@ $foo[key1]
- // when the key contains brackets, $, etc...
- @l $temp = ]special characters[
- @ $foo[$temp] = value4
- foreach ($key, $value; $foo)
- MessageBox key: $key, value: $value
- endforeach
- // stored array
- @s $stored[key] = value
- -@s $stored[key]
- // local array
- @l $local[key] = value
- * New functions for arrays: $ArrayKeys($array), $ArrayValues($array),
- $ArrayLength($array). These only work with arrays created with the new
- syntax as shown above.
- * ViRC now automatically checks for updates 5 minutes after you start it.
- You can disable update checking or change settings in client setup, and
- you can force it to check immediately with /checkforupdates or the
- file menu item.
- * New functions: $URLEncode(text), $URLDecode(text). URL encoding replaces
- space with '+' and all other non-alphanumerics with '%xx', where xx is
- the hex code. Decoding is the opposite.
- * New function $MD5(text) to return an MD5 digest. The digest is a 128-bit
- fingerprint of the input text, given as 32 hex digits. The chances of
- two separate texts having the same MD5 digest are one in 2^128.
- * New function $ParseColor(string [type]) to get a color's RGB value.
- <string> can be an mIRC color number (0-15), a hex color in the form
- $BBGGRR, a decimal color (as returned by $prop($obj.Color)), an
- event color name like ecJOIN, or a color name like clGreen.
- <type> can be 'dec' to return it as a decimal color (for use with
- @p $obj.Color or with TextOut) or 'hex' to return it as a hex color in
- the form RRGGBB (for use with \d). 'hex' is the default.
- * ViRC will try to reconnect to the server if the connection is lost. You
- can adjust the delay between attempts (and other settings) in client
- setup. ViRC can also try other servers on the same network if enabled.
- Note that disconnecting with '/raw quit' will make ViRC think the server
- disconnected you, and it will try to reconnect.
- * New "don't hop away" server list option. If reconnection fails on a
- server with the option enabled, ViRC won't try other servers from the
- same network. However, if ViRC was trying the "don't hop away" server
- because reconnection failed on a different server, it will still hop
- away.
- * ViRC's tray icon now has a customizable popup menu (MT_TRAYPOPUP).
- --- Changed features ---
- * <OnStart> events are now run after the toolbars are set up and the
- splash form is hidden.
- * The script editor no longer saves menu items that have no code. This
- means you can add items in local.lib without having to copy all the
- code from virc.lib.
- * The server debug log now contains all text that is sent or received.
- 'recv' marks a received line, 'send' is a sent line, 'send_brk' is a
- sent line that is broken to avoid DCC proxies, and 'send_idle' is a
- sent line that doesn't reset $idletime(). If you use debug logging, make
- sure you edit any passwords out of your logs before you send them to
- anyone.
- * Channel, query, and DCC chat window positions are now stored with an MD5
- digest of the network and channel/nickname instead of the actual plain
- text. This prevents others from looking in your registry to see who
- you've talked to, and also lets you have separate positions for the same
- channel on different networks.
- * The 'News and updates' link has been removed from the about box.
- --- Fixes ---
- * DCC requests are always sent correctly with reverse DCC enabled. You can
- also send DCC when SOCKS is enabled, as long as reverse DCC is also
- enabled.
- * No more errors when using /exit with queries or channels open.
- * Major DCC bugs fixed.
- * Menu definitions can now have spaces before the bitmap filename.
- * Fixed hexadecimal values in expressions.
- * Errors in ActiveScript language blocks are handled better.
- * GetVar() in ActiveScript code now works correctly for numbered parameter
- variables.
- * $getwindowid() now works in <OnCreateWindow> for all window types.
- * Timers are now disabled correctly when the timer command takes longer
- to run than the timer interval.
- * Importing ViRC 1.x settings now works correctly when there was no server
- list defined.
- * Ending color codes now correctly clears the background color.
- * Leaving the personal script filename blank is now acceptable.
-
- Changes since ViRC 2.0pre8b:
- --- Additions ---
- * ViRC can now autoload more than one script at a time - a master script
- (virc.lib), a personal script (local.lib), and multiple add-on scripts
- (winamp.vsc, etc.). You can now install an add-on script simply by
- adding it to the list on the configuration window's Scripts page and
- rehashing.
- * The script editor now has a "New" button, and loads the personal script
- by default.
- * New 'server list' button in toolbars.vsc.
- * New channel list window. Try '/list *mp3*' or just '/list'. The list
- can be loaded and saved to a file, using the same format as mIRC.
- Right-click on a channel to get a menu.
- * New /who window, accessible with /wwho or /windowedwho. Try '/wwho' to
- get a list for the active channel, or '/wwho #virc' for another
- channel. You can also double-click on a channel in the /list window to
- see who's on.
- * '/clear -h' or '/clear #virc -h' can now be used to clear the input box
- history.
- * The server notify list and channel nick list can now be resized by
- dragging the border between the output pane and list box.
- * Scripts can now create tray icons with the TTrayIcon class. Properties:
- - Active: Boolean
- - Hint: string
- - Icon: TIcon
- - PopupMenu: TPopupMenu
- Events:
- - OnClick
- - OnDblClick
- - OnRightClick ($Shift, $Button, $X, $Y)
- * If you move ViRC to a new directory and it can't find the scripts (the
- old paths are saved in the registry), it will look in the new location
- of ViRC.exe. If it finds them there, it will load the files and update
- the settings.
- * Scripts can now use TListView, which is the control used in the ban
- list, /who list, and Explorer windows. The actual implemented classes
- are TListView, TListItem, TListItems, TListColumn, TListColumns, and
- TImageList. See ovs.txt.
- * Scripts can use TCanvas to draw on forms and some controls. This also
- means owner-draw list boxes and list views are available.
- * A color palette now appears when you start typing a color with ctrl-K.
- * Attribute codes (^B, ^K, etc.) now work for the real name and default
- messages settings in configuration, and for the topic in channel
- control. Scripts can use TInputCombo for a combo-box that allows
- attributes.
- * New reverse DCC support for firewalls, compatible with mIRC. Enable
- "Use reverse DCC" on the DCC settings page. Note: This won't work if
- both users are behind different firewalls.
- Special note to Khaled: Please put more thought into your next
- invention.
- * When reverse DCC is enabled, ViRC will attempt to trick some proxies
- that intercept DCC requests (specifically, the one at my apartment
- complex that inserts the wrong address).
- * The setup wizard is now implemented. Choose "I'm new to IRC and I
- want detailed help" on the import settings form for new users.
- * New function: $SameNick(nick1 nick2). Considers [ the same as {,
- \ the same as |, and ] the same as }, like ircd.
- * New commands/functions for DCC management:
- $DCCList() returns a list of DCC list entries
- DCC Accept <entry> [filename]
- DCC Resume <entry> <offset> [filename]
- DCC Reject <entry>
- $GetDCCInfo(<entry> <key>) where key is chatform (returns a mapped object
- handle), chatwin (returns a window name like =1), filename, id, kind
- (chat/send/tsend/get/tget), mynick, myport, nick, origfilename,
- remoteaddr, remoteport, reverse, reversetoken,
- server (returns the server ID), servername, socket (returns a mapped
- object handle), startpos, starttime (compare to $mtime()), state
- (request/connecting/connected/waiting/resuming/socks), totalsize,
- transferred, or whiteboardform (returns a mapped object handle)
- Note that when an incoming request is accepted, the request entry is deleted
- and a new entry is created to connect. Firewall DCC entries are similarly
- recreated during connection.
- * New events for DCC:
- <OnDCCConnect> ($0 = chat/send/tsend/get/tget, $1 = DCC entry ID)
- <OnDCCFinished> ($0 = chat/send/tsend/get/tget, $1 = DCC entry ID,
- $2 = socket error number, $3- = error message.
- error number is 0 if completed or -1 if aborted.)
- * Ident and DCC socket errors are now shown on the main status bar.
- --- Changed behavior ---
- * Menu bitmaps will now be made square when they're loaded, by setting
- the width to be the same as the height. This means you can use the
- same bitmaps for menus and toolbars if the toolbar bitmaps have
- disabled versions.
- * New users now have "strip attributes from logs" turned on by default.
- * ViRC no longer freezes while looking up the server's IP address.
- * Menu items aren't forgotten when the menu tree is updated, so you don't
- have to duplicate the code for the entire menu just to add one item.
- * No more AddNickToChan/RemoveNickFromChan errors.
- --- Fixes ---
- * The tile and cascade buttons in toolbars.vsc now work correctly.
- * The tray icon refreshes itself automatically if Explorer crashes.
- * The server toolbar is correctly updated after an error causes the
- server to disconnect.
- * The internal QUIT event now works correctly if the server doesn't send
- a reason.
- * The new TDCC handshake is now actually implemented.
- * Continuous backgrounds work correctly with toolbars, and turning
- continuous backgrounds off works as expected.
- * ViRC now looks in its own directory for menu/toolbar images if no path
- is given.
- * Incoming messages and notices directed to the ops or voices of a channel
- (@#virc, +#virc, @+#virc, etc.) are now shown in the correct window.
- * Logging for nicks with \ in them works correctly.
- * The ident server is now much better behaved.
- * IAL expiration should be faster in large channels.
- * Nicks are now compared correctly ('{' is the same as '[', etc.).
-
- Changes since ViRC 2.0pre8:
- --- Additions ---
- --- Changed behavior ---
- * Exceptions caused by scripts are handled differently. Functions that
- raise exceptions will return an appropriate message.
- * The upgrade message will now go away even if the configuration can't be
- saved completely.
- --- Fixes ---
- * Menu bitmaps work correctly.
- * Class definitions with blank lines work correctly.
- * Switching between OVS-created MDI children doesn't give errors.
- * Destroy/SafeDestroy no longer explicitly close forms. This will prevent
- errors when a form's OnClose handler destroys the form.
- * Calling methods of user-defined classes no longer loses local variables.
- * List items quoted with angle brackets are now extracted correctly.
- * '/dns www.yahoo.com', with an extra space after /dns, works correctly.
-
- Changes since ViRC 2.0pre7:
- --- Additions ---
- * RGB color codes are now supported, a la Bersirc. Press ^L (or use \d
- in a script), followed by a RRGGBB hex color code (like HTML). A comma
- separates the foreground and background colors.
- * ViRC can now be set to recognize ^V as inverse colors instead of italics.
- It will always recognize ^R as inverse, and now also always recognizes ^]
- ($char(29) or \s) as italics. Pressing control-N or control-R will insert
- the correct italics or reverse code whether compatibility mode is on or off.
- New users will default to new color mode, existing users will default to
- compatibility mode.
- * New text window options: "old italic compatibility mode" and "script link
- merge mode".
- * New versions of a few string functions to allow tokens/substrings with
- spaces (just quote the token as a list item): $StrPosEx(), $StrPosFromEx(),
- $StrTokLEx(), $StrTokREx(), $RStrPosEx(), $RStrTokLEx(), $RStrTokREx().
- * New versions of pattern matching functions to allow patterns with spaces
- (quote the *text* as a list item): $WildMatchEx(), $WildMatchCaseEx(),
- $GlobMatchEx(), $GlobMatchCaseEx().
- * Ctrl-enter can be used to type multiple lines in the input box and send
- them all at once.
- * The script editor gives a warning when it loads a file where code between
- aliases/events/menus will be lost.
- * /wallops has been added as a built-in command.
- * New variable $exebuild to return the build number of ViRC.exe. This can
- be found by opening ViRC.exe's properties and looking at the version page;
- if $build is 200 and $exebuild is 42, the file version will be 2.0.0.42.
- * New command: Inflate [window]. This makes the window as big as possible
- without maximizing it, so switching windows will be faster. If no window
- name is given, all windows will be inflated. Clicking a window's maximize
- button will now inflate it instead of maximizing (turn off "maximize button
- inflates" to go back).
- * New function $ListCat(<item1> .. <itemN>) to append list items. This will
- be faster than appending them as strings when the new script engine is in.
- * Screen information can now be retrieved by mapping !Screen: see the
- properties ActiveControl, ActiveForm, DesktopHeight, DesktopLeft,
- DesktopTop, DesktopWidth, Height, Width, HintFont, IconFont, MenuFont,
- and PixelsPerInch.
- * ViRC will strip out the PGP headers when loading a script that has been
- digitally signed with PGP. It will not verify the signature itself, though.
- If you sign a script, make sure to keep the original script text intact -
- you can do this by opening it in a text editor and signing it with PGPtray,
- *not* by using the PGP right-click menu in Explorer. Make sure you have
- "word wrap clear-signed messages" turned off in PGP's email options.
- * DCC Whiteboard is back, and much more powerful. See vircwb.txt for details
- on how to control the whiteboard from scripts. This whiteboard is
- compatible with ViRC 1.x's whiteboard, but some features will be unavailable
- (the 1.x user may see "CAN use-wb2" as ViRC 2 tries to negotiate this).
- * New commands/functions to interact with other windows:
- $FindWindow("class" ["title"]), $SendMessage(<hwnd> <msg> <wparam> <lparam>),
- $GetWindowText(<hwnd>), SetWindowText <hwnd> <text>.
- * New commands/functions to allocate and edit memory, intended for use with
- SendMessage or DLLs (ViRC may crash if you don't know what you're doing):
- $GetMem(size), FreeMem <ptr>, PokeLong <ptr> <offset> <value>, and
- $PeekLong(<ptr> <offset>). PokeWord, PokeByte, PeekWord, and PeekByte are
- also available, and PokeString/PeekString can be used for C-style strings.
- * New persistent DLL support with $LoadDLL(<filename>), FreeDLL <filename>,
- and an extended $DLL(). See vircdll.txt for details, or fpu.dpr for an
- example. Note to DLL authors: although you can have mIRC-style functions
- and persistent functions with the same name in the same DLL, persistent
- calls use different function names and parameter types.
- * Built-in timestamping for text windows. Turn on the "show timestamps"
- option to see them by default, or right-click in a window to turn it on
- and off. Timestamps are saved even when timestamping is turned off, and
- toggling timestamp display affects lines that have already been added,
- as in AIM.
- * The script editor now has syntax hiliting and auto-indent.
- * Custom toolbar support, using Toolbar..EndToolbar blocks (similar to menu
- trees). See toolbars.vsc.
- * virc.lib now includes responses for CTCP USERINFO, FINGER, SOURCE, and
- CLIENTINFO, and an /sv command to brag about your client version.
- * These server form properties can now be used in scripts: Hostname,
- Nick, Ident, IRCName, Servername (read only), Port (read only), Connected
- (read only), ConnectedAt (read only), LastSent (read only). These channel
- form properties can also be used: ServerID (read only), Server (TForm),
- Channel, JoinString (read only), Mode, Key (read only), Limit (read only),
- Topic, TopicSetter, TopicTime, TopicHistory (TStringList).
- * Menu tree definitions can now contain an optional bitmap filename,
- surrounded by double-quotes before the caption.
- --- Changed behavior ---
- * The mouse wheel code has been changed. If your wheel hasn't been working
- properly (*cough* Gnowknaym), try turning off the "Mouse wheel fix" option.
- * 'Nop' event handlers in OVS now work the same way as they did in 1.x; that
- is, it sets a handler that does nothing. To actually unset an event handler
- (as 'Nop' did in pre7), use 'Nil' instead.
- * $ListReplace() now creates empty items in between:
- $ListReplace(2 2 foo a b c) => a b foo
- $ListReplace(2 2 foo a) => a "" foo
- * /kb now deops the victim.
- * Internal socket error handling has changed.
- * The configuration window now appears the first time running ViRC.
- * <OnConnect> events now get the server name in $0 and the network name in $1.
- $1 will be () if there is no matching network.
- * TDCC now works with a parameter at the end of CTCP DCC SEND, instead of
- using CTCP DCC TSEND. This means that if you TDCC send to an mIRC user, it
- will go through as regular DCC (with send-ahead) instead of being ignored.
- Turn on "use old TDCC handshake" to go back.
- * Tab characters are no longer copied to the clipboard.
- * 'true' and 'false' can be used in expressions to mean 1 and 0 respectively.
- Among other things, this means you can do 'if $prop($checkbox.Checked)'.
- * A default value can be specified to AddScriptControl:
- AddScriptControl config edit "Auto join:" autojoin = #virc
- * Commands sent in the background by ViRC (such as ISON commands for the
- notify list) will no longer reset $idletime(). Use 'Quote -idle <text>' or
- 'Raw -idle <text>' to do this from scripts.
- * Existing aliases, events, and toolbars will now be removed from memory
- before rehashing the script (with /rehash or the script editor).
- * Aliases are now stored in a hash table rather than a slow sequential list.
- --- Fixes ---
- * Focus for newly created windows is now correct again.
- * Clicking empty spots on the tab bar no longer causes it to grow. Closing
- the first window no longer leaves an extra separator.
- * The script editor's "this script loads" list no longer includes
- files that don't exist.
- * "%%" and "*%" in patterns will now work as expected.
- * Deleting items in the script editor doesn't break the last item.
- * Rearranged virc.lib again, it's now completely safe to edit from ViRC.
- * TextOutBitmap -nohilite works correctly.
- * Variables can now contain $char(0).
- * <OnDCCRequest> event handling is improved.
- * Hexadecimal values ($$a40c) work in expressions again.
- * Text windows no longer scroll to the bottom when they are resized.
- * The tab bar no longer appears when it's empty.
- * Menu items now run in the correct channel.
-
- Changes since ViRC 2.0pre6:
- * New window tab bar. This one docks at all four sides, puts all the
- tabs on one bar, and automatically updates the tab icons if a script
- changes a form's icon (not just for TTabbedForm).
- * New options: "no separators on window tab bar", "hide window tab bar",
- "automatically show DCC list" (for incoming or outgoing requests).
- * A channel control dialog is in. Use /ChannelControl [channel] or double-
- click in the channel window. It can be mapped as !ChannelControl.
- * New command: /exec <program> <parameters>.
- * The script editor no longer loses <DoubleClick> menu items. It's also
- stay-on-top instead of modal, and it will go back to the same file
- and item when it's closed and reopened. It can be mapped as
- !ScriptEditor.
- * /dde is fixed and can now poke data as well as reading and executing.
- * ViRC now has a DDE server. See vircdde.txt.
- * If ViRC can't load the default script, it will bring up the config form
- so the script path can be corrected, then quit.
- * $isdccchatting() now accepts a leading equal sign (=1 or =Atrox).
- * Only the most specific <OnNewDCCChatText> event will be fired, unless
- FallThrough is used. Use 'FireEvent -one' to fire your own events
- this way.
- * Text scroller fixes: gaps between bold and non-bold text are gone,
- ^R now correctly draws the background color.
- * The help menu has descriptions for the included files, and the
- scripting help files are on a submenu.
- * /^ no longer causes text display to be stuck off.
- * Script engine fix: an OVS event handler that sets a new handler for
- the same event on the same object will no longer cause access violations.
- * TInputMemo is now available in OVS - it's like TMemo but it handles
- attribute keys (^B, ^K, etc) and attribute pasting. TForm's OnClose event
- is also supported. Set $Action to caNone, caHide, caFree, or caMinimize.
- * The DCC list's position is saved and loaded correctly.
- * New properties for channel windows: TopicSetter (string), TopicTime
- (unixtime), and TopicHistory (TStringList).
- * New method for TMonkeySex: GetText(). Returns all the text in the control.
- * ViRC.lib has been rearranged so that the script editor won't lose the
- active nicks/modes code.
- * New function: $UnixTimeOf(dd/mm/yy hh:mm[:ss] [am/pm])
- * $DecodeInterval() and $DecodeMInterval() now accept a second parameter, a
- format string containing characters w, d, h, m, s. The default format is
- 'dhms'. Lowercase characters are optional fields, uppercase characters
- are required fields.
- $decodeinterval(123 hms) => 2 minutes 3 seconds
- $decodeinterval(123 HMS) => 0 hours 2 minutes 3 seconds
- $decodeinterval(123 hm) => 2 minutes
- $decodeinterval(123 h) => 0 hours
- * The controls on server/channel/query/chat forms are now in their own
- panels (OutputPanel, InputPanel, NotifyPanel, NickListPanel). This should
- make it easier to fit new controls in.
-
- Changes since ViRC 2.0pre5:
- * VSInterp fixes: '@p $obj.Items.CommaText' wouldn't work, even though
- the property could be retrieved. RemoveFromSetProp was broken.
- * New functions: $getmode(), $gettopic(), $getkey(), $getlimit().
- * New "keep channels open when dropped" option.
- * New script editor. Right-click on the tree to add or delete items.
- Remember that ViRC 2 load scripts from a file, not the registry - the
- editor works on files, not a "working copy" of the script as in 1.x.
- The header and footer appear before and after the script in the file,
- respectively; don't define aliases, events, or menus in the header or
- footer. The editor will load any ViRC script file, but if you load a
- file that wasn't created with the editor, you'll lose everything that
- appears between definitions (comments before events, etc.). Comments
- should be put in the header/footer or inside definitions.
- * Friendlier welcome/"import settings" dialog.
- * /load will now default to looking in the ViRC directory if no path is
- given.
- * The following built-in commands no longer display text: /say, /msg,
- /notice, /ctcp, /rctcp, /me, /desc. Instead, they fire script events:
- <OnMyChanText>, <OnMyPrivMsg>, <OnMyNotice>, <OnMyCTCP>, <OnMyRCTCP>,
- <OnMyChanAction>, <OnMyPrivAction>, <OnMyQueryText>, <OnMyQueryAction>.
- $0 is the target or window, $1- is the text. The events will be fired
- even if the text display is suppressed with the ^ prefix. DCC chat uses
- the same events as queries (this is the only time $N can be used on the
- global interpreter). $C is set to the target for channel and query events,
- and the active window for the others.
-
- Changes since ViRC 2.0pre4:
- * New "continuous backgrounds" option. This causes each window's background
- image to be tiled from the same starting point.
- * A wallpaper image can now be displayed behind the child windows. Combine
- this with continuous backgrounds for an interesting effect.
- * Numeric operators are now left-associative, like they should be: $(1-2+3)
- returns 2 ((1-2)+3), instead of -4 (1-(2+3)).
- * $notify() no longer displays text in the active window when used as a
- function.
- * The mouse wheel should now work again. Moving the wheel over the nick list
- will scroll the list; moving it anywhere else will scroll the output pane.
- * Channel window titles are now only set to the first 100 characters of the
- caption. This should prevent access violations in channels with very long
- topics.
- * New DCC options: "Force DCC IP address" and "force port range" (for
- incoming connections only). This is useful if you're behind a firewall or
- NAT (aka Internet Connection Sharing). The IP address will be evaluated
- if specified, so you can point it to a file on your NAT server:
- $readline(1 $noattribs(\\win2kbox\c\currentip.txt))
- * Instead of /command, you can now also type //command (to evaluate it
- first) or ///text (to evaluate some text and show it in a message box).
- * /DNS will now accept a nick. If you have a hostname that looks like a
- nickname (no dots, doesn't start with a number), use /dns *host to
- prevent this.
- * New TSockets method: SListenRange(lowport highport). Attempts to listen
- on any port within the range, returning the port if successful, or 0
- if not.
- * New "auto connect to servers" script setting. Set this to a
- comma-separated list of servers to connect to when you open the client.
- * Updated script documentation is included.
-
- Changes since ViRC 2.0pre3:
- * Logging paths containing \b, \i, \u, etc. will now work correctly.
- * OnServer works on server 16.
- * Text scroller updates:
- - Multiple lines of text are copied to the clipboard correctly.
- Attributes are also terminated at the end of the selection.
- - TextOut bitmaps are drawn transparently. Any pixels that are the same
- color as the bottom-left corner will be transparent.
- - Background images are available again.
- - A lock icon is now displayed in the bottom-right corner when a window is
- scrolled up, indicating that new lines will not be visible as they are
- added.
- * DLL calls are now supported. Use '/dll foo.dll funcname data' or
- $dll(foo.dll funcname data), surrounding the filename with quotes if
- necessary. The same format as mIRC's DLLs is used:
- type
- TDLLCall = function (Main, Active: HWND; Data, Params: PChar; Show,
- NoPause: BOOL): Integer stdcall;
- The Params buffer is initialized to "ViRC 200", where 200 is the current
- ViRC build. A return code of 0 (halt script) is treated the same as 1
- (continue script).
- * The script log form can be mapped as !ScriptLog, when enabled.
- * New function: $striplinks(). This only strips hyperlinks and script links;
- $stripattrs() does neither.
- * Links are now correctly stripped from logs.
- * Built-in timers:
- /timer [timername] seconds repeats command
- /mtimer [timername] millisecs repeats command
- /timers ['all']
- /untimer timername
- $timerexists(timername)
- $timerlist([serverid])
- $gettimer(timername) => millisecs repeats server command
-
- A "repeats" value of 0 means the timer repeats forever. Timer names are
- shared across all servers, and any timers created on a server are deleted
- when that server is closed. Timer names may not start with a digit. If the
- timer name is omitted in /timer or /mtimer, an available name will be
- generated automatically. $timer() and $mtimer() can be used as functions,
- which will return the name of the newly created timer. Commands will not be
- evaluated when they are run (if you want it to happen, use Eval).
-
- Changes since ViRC 2.0pre2:
- * Script link colors are now averaged correctly.
- * 'TextOut -nohilite' (or TextOutBitmap -nohilite) can be used to prevent
- the window tabs from lighting up.
- * 'DNS hostname' now correctly performs the reverse lookup instead of just
- repeating the hostname you supplied, and only shows it if the result of
- the reverse lookup is different from the supplied hostname.
- * Part messages are now handled correctly. This may eliminate AddNickToChan
- errors.
- * \L and \S are now stripped from logs when attribute stripping is turned on.
- * A splash screen is now displayed as ViRC starts.
- * #172 is now handled correctly in patterns, as is % followed by * or #172.
- * Punctuation is now stripped from the end of URLs more reliably.
- * Variables removed by mask (with '-@ $foo.*' or when local variables are
- removed) are now matched case-sensitively. This is available to scripts as
- $wildmatchcase().
- * $new() now works correctly if there is more than one space between 'ownedby'
- or 'position' and its argument.
- * The Active, ActiveMDIChild, FormState, ModalResult, and TileMode properties
- of TForm are now available.
- * Destroying an object from one of its event handlers will now work in *some*
- cases. Which ones work is dependent on the internals of Windows and the VCL.
- The command 'SafeDestroy' has been added which will always work, but won't
- actually destroy the object until the event handlers finish running.
- * $mapobject(#virc:WindowTab) can now be used to find the button on the tab
- bar corresponding to a given window.
- * $globmatch() and $globmatchcase() are now available, which only use '*' and
- '?' as wildcards. $maskmatch() is the same as $globmatch().
- * New DCC config options: send ahead and block size.
-
- Changes since ViRC 2.0pre1:
- * TextOut on the global interpreter will now display to the active window.
- * $?="" now returns INPUT_CANCELLED if the user presses Cancel.
- * ViRC will no longer attempt to send data to the server from an
- <OnDisconnect> event.
- * <OnCreateWindow> will now be fired with "TDCCChatForm =nick =1" for DCC
- chat forms (with the appropriate =ID in $2).
- * New functions to get the nicks involved in a DCC chat: $LocalNick(=ID),
- $RemoteNick(=ID).
- * Objects created with OVS are no longer freed by the interpreter when it is
- destroyed - this fixes access violations, 100% CPU usage, and so on when
- closing ViRC.
- * Some more 1.x settings are now imported as script settings.
- * Kick/KB messages and exit/X messages are now evaluated as in 1.x.
- * New function: $IsA(<obj> <class>).
- * RPL_UMODEIS events with a colon before the user mode are now handled
- correctly.
- * Script link aliases now get $X, $Y, $Shift, and $Button, just like
- OnMouseDown handlers. They also get $Text (the visible text of the link)
- and $ScreenX and $ScreenY (the screen coordinates of the mouse click,
- suitable for use with TPopupMenu.Popup).
- * A form can now be destroyed from one of its event handlers. However, other
- controls should not be.
- * $UnixTime() is back to using 32-bit numbers. This prevents uncommon but
- bizarre flaws with the 64-bit numbers, such as all unixtimes being off by
- 136 years.
- * Server list changes: New server entries are now saved correctly the first
- time. You can now choose which servers and networks to export/import.
- Importing is now implemented.
- * The join and part bitmaps have been changed to a white arrow on a red
- background, which should be easier on the eyes.
- * Object handles are now shared between interpreters.
- * New method: TMenu.LoadFromMenuTree. This creates menu items to match the
- menu tree, and puts their handles in the local _item array; for example,
- an item named M_CTCPVERSION will be created with its handle in
- $_item.M_CTCPVERSION. Note that OnClick handlers are not set up for these
- items.. clicking them will not make anything happen by default.
- * MenuTree..EndMenuTree can now be used to define custom menu trees by giving
- a non-standard name. They will not be used by ViRC and cannot be used with
- MenuItem..EndMenuItem; they are intended for use as shown above.
- * AppendText now creates the file if it doesn't already exist.
- * New commands: ShowScriptLog,
- FireMenuItem [> channel] <item> on <tree> [= parameters].
- * Ident requests are now answered with a CRLF at the end, which should make
- ident work with more servers.
- * The main menu no longer forgets all the hints and items when the menu tree
- is changed.
- * $prebuild can now be used to find the current prerelease version.
- * TMonkeySex's events can now be set:
- OnClick, OnDblClick: gets $Sender
- OnCopyText, OnHyperlink, OnLogging: gets $Sender and $Text
- OnScriptLink: gets $Sender, $Command, $Text, $Button, $Shift, $X, $Y
- * The default script link color has been changed. Script links are now
- displayed using the average between the regular text color and the script
- link color.
- * ViRC.lib now generates script links, which you can turn on and off with the
- checkboxes on the script settings tab. "Active nicks" brings up the nick
- list popup when you right-click a nick, "Active hosts" runs a DNS lookup
- on a hostname when you double-click it, "Active modes" lets you undo a mode
- change by right-clicking it, and "Active invites" lets you join a channel
- when you're invited by double-clicking it.
- * Hyperlinks and script links are now stripped before a TextOut to a
- TRichEdit.
- * Magic is now properly applied to channel nick list popups.
-
- Changes since ViRC 2.0pre-1:
- * Event masks like "% FOO" will now match either "xyz FOO" or "xyz FOO bar",
- but not "xyz FOOABC"; that is, the line from the server can contain extra
- words at the end that aren't in the mask. $wildmatch() still works as usual.
- You can get the same effect from $wildmatch() by putting an alt-0172 at the
- end of your pattern.
- * $currentserver_activewindow() is now an alias for $activewindow().
- * TTrackBar and TNashButton are now available for scripts to use.
- * New commands: FlushIAL, SetInputLine.
- * New functions: $GetInputLine(), $MapProp().
- * New syntax to uncache one bitmap: FlushBitmapCache <filename>
- * ViRC 1.x user/server lists are now imported.
- * New "timestamp logs" option.
- * The version info on virc.exe is fixed.
- * The script log window can now be resized, and right-clicking on it will let
- you change the buffer size.
-